package com.yuntai.pms.model.api;


import com.yuntai.pms.model.dto.AipAppQueryDto;
import com.yuntai.pms.model.dto.system.AipAppModifyDto;
import com.yuntai.pms.model.entity.AipApp;
import com.yuntai.pms.model.result.PageResult;
import com.yuntai.pms.model.vo.AipAppVo;

/**
 * @ClassName: AipAppService
 * @Description: app管理
 * @Author yangtongbin
 * @Date 2017/8/1 10:37
 */
public interface AipAppService {

    /**
     * app列表
     * @param dto
     * @return
     */
    PageResult<AipAppVo> selectAppList(AipAppQueryDto dto);

    /**
     * 是否存在isv
     * @param dto
     * @return
     */
    boolean isExistIsv(AipApp dto);

    /**
     * 新增一个app
     * @param dto
     * @return 新增的app（包含主键）
     */
    AipApp saveApp(AipApp dto);

    /**
     * 修改
     * @param dto
     * @return
     */
    int updateApp(AipApp dto);

    /**
     * @Title: updateAppByUser
     * @Description: 用户修改app字段接口
     * @param dto
     * @return
     */
    int updateAppByUser(AipAppModifyDto dto);
    
    /**
     * 应用主键
     * @param id
     * @return
     */
    int delAppById(Long id);

	/**
	 * @Title: selectAppListForUser
	 * @Description: 控制中心下查询app列表 
	 * @param dto
	 * @return
	 */
	PageResult<AipAppVo> selectAppListForUser(AipAppQueryDto dto);

	/**
	 * @Title: deleteByIsvAppId
	 * @Description: 通过isvAppId 删除一条记录
	 * @param id
	 */
	int deleteByIsvAppId(Long isvAppId);
	
	
	/**
	 * 根据用户获取该用户下的appID
	 * @param userId
	 * @return
	 */
	 PageResult<Long> getAppIdsByUserId(Long userId);
	 
	 /**
	  * 不用加left join，避免多余数据
	  * @param dto
	  * @return
	  */
	 PageResult<AipAppVo> selectAppListNoJoin(AipAppQueryDto dto);

	 void updateAppStatus(AipApp dto);
}
